home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 133 / SGDS 133.2mg / SDGS.133 / B / QD.LINGO.PRG (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1992-10-19  |  6.0 KB  |  257 lines  |  [FC] Applesoft BASIC Program (0x6001)

  1. 1  PRINT  CHR$(21): POKE 230,64: HCOLOR= 3: HPLOT 0,0: CALL  -3082
  2. 2  INVERSE : SPEED= 255
  3. 3  ONERR  GOTO 62900
  4. 5 :
  5. 10  PRINT  CHR$(4)"-qd.lingo.wbx"
  6. 20  POKE 48688, PEEK(0): POKE 48689, PEEK(1)
  7. 30 :
  8. 40  DIM LA$(50),EN$(50),PH$(50),QU(50),MS$(20),PR$(50)
  9. 41  FOR C1 = 0 TO 48
  10. 42 QU(C1) = C1
  11. 43  NEXT 
  12. 44 LINGO$ = "Esoteric"
  13. 50 RN$ = "      1   2   3   4   5   6   7"
  14. 70 BOX = 2051:OBOX = 2054:CBOX = 2057
  15. 100 :
  16. 110 :
  17. 140  SPEED= 255
  18. 150  GOSUB 61000
  19. 200  CALL BOX,8,3,26,15
  20. 230  GOSUB 63000
  21. 240  PRINT  CHR$(20): VTAB 22: HTAB 6: INVERSE : PRINT "Time reveals all things. Wait.": INVERSE 
  22. 250  GOSUB 11000
  23. 260 PR$ = "Press a key.": GOSUB 50000: GET K$
  24. 265  HCOLOR= 3: HPLOT 0,0: CALL 62454: REM (J) clear screen to WHITE
  25. 270  GOSUB 10000
  26. 280  GOSUB 52000
  27. 290  CALL BOX,12,8,17,8
  28. 300  PRINT " Main Menu"
  29. 310  PRINT 
  30. 320  PRINT " 1. Info"
  31. 330  PRINT " 2. Dictionary"
  32. 340  PRINT " 3. Quiz"
  33. 350  PRINT " 4. Quit"
  34. 360 PR$ = "Touch the number of your choice.": GOSUB 50000
  35. 370  GET K$: IF K$ =  CHR$(27)  THEN K$ = "4"
  36. 380 M1 =  VAL(K$)
  37. 390  ON M1 GOSUB 21000,22000,23000,24000
  38. 400  GOTO 270
  39. 410  GOTO 220
  40. 9999  END 
  41. 10000 :
  42. 10010 H = 3:V = 3:W = 36:HT = 20
  43. 10020  CALL BOX,H,V,W,HT
  44. 10030 H = H +1:V = V +1:W = W -2:HT = HT -2: IF H <11  THEN 10020
  45. 10040  CALL BOX,H,V,W,HT
  46. 10050 H = H -1:V = V -1:W = W +2:HT = HT +2: IF H >1  THEN 10040
  47. 10060  RETURN 
  48. 11000 :
  49. 11010  PRINT  CHR$(4)"openqd.lingo.for"
  50. 11020  PRINT  CHR$(4)"readqd.lingo.for"
  51. 11030  FOR T1 = 0 TO 48
  52. 11040  GOSUB 59000:L =  LEN(IN$)
  53. 11041  FOR Q1 = 1 TO  LEN(IN$): IF  MID$ (IN$,Q1,1) = "("  THEN L = Q1:Q1 = 100
  54. 11042  NEXT : IF L < > LEN(IN$)  THEN PR$(T1) =  RIGHT$(IN$, LEN(IN$) -L)
  55. 11050 LA$(T1) =  LEFT$(IN$,L -1)
  56. 11060  NEXT 
  57. 11070  PRINT  CHR$(4)"close"
  58. 11110  PRINT  CHR$(4)"openqd.lingo.eng"
  59. 11120  PRINT  CHR$(4)"readqd.lingo.eng"
  60. 11130  FOR T1 = 0 TO 48
  61. 11140  GOSUB 59000
  62. 11150 EN$(T1) = IN$
  63. 11160  NEXT 
  64. 11170  PRINT  CHR$(4)"close"
  65. 11210  PRINT  CHR$(4)"openqd.lingo.phr"
  66. 11220  PRINT  CHR$(4)"readqd.lingo.phr"
  67. 11230  FOR T1 = 0 TO 48
  68. 11240  GOSUB 59000
  69. 11250 PH$(T1) = IN$
  70. 11260  NEXT 
  71. 11270  PRINT  CHR$(4)"close"
  72. 11300  RETURN 
  73. 21000 :
  74. 21005  GOSUB 10000
  75. 21010  CALL BOX,8,3,26,15
  76. 21020  GOSUB 63000
  77. 21025 PR$ = " ": GOSUB 50000
  78. 21030  GET K$
  79. 21040  RETURN 
  80. 22000 :
  81. 22010  GOSUB 10000
  82. 22020  GOSUB 52000
  83. 22030  CALL BOX,13,6,15,3: PRINT "  Dictionary"
  84. 22035 BS = 0: REM list base
  85. 22038  IF BS >48  THEN BS = 0
  86. 22040  CALL BOX,3,9,36,13
  87. 22045  PRINT 
  88. 22050  FOR T1 = 0 TO 6
  89. 22060  PRINT  MID$ (RN$,(T1 +1) *4,4)". "LA$(BS +T1)
  90. 22070  NEXT 
  91. 22075  PRINT 
  92. 22080  PRINT "   M. More words"
  93. 22090 PR$ = "Press 1-7, " + CHR$(34) +"M" + CHR$(34) +" or ESC": GOSUB 50000
  94. 22100  GET K$
  95. 22110  IF K$ = "M"  OR K$ = "m"  THEN BS = BS +7: GOTO 22038
  96. 22120  IF K$ =  CHR$(27)  THEN 22998
  97. 22130  IF   NOT  VAL(K$)  THEN 22090
  98. 22134  IF  VAL(K$) >7  THEN 22090
  99. 22140 IX =  VAL(K$) -1: GOSUB 30000: GOTO 22090
  100. 22998  RETURN 
  101. 23000 :
  102. 23010  GOSUB 10000: GOSUB 52000
  103. 23020  CALL BOX,6,8,28,8
  104. 23030  PRINT " Quiz Menu"
  105. 23040  PRINT 
  106. 23050  PRINT "   1. Mundane to "LINGO$
  107. 23060  PRINT "   2. "LINGO$" to Mundane"
  108. 23070  PRINT "   3. Exit to Main Menu"
  109. 23090 PR$ = "Touch 1-3 or ESC to exit.": GOSUB 50000
  110. 23100  GET K$
  111. 23105  IF K$ =  CHR$(27)  THEN 23140
  112. 23110 M2 =  VAL(K$)
  113. 23115 EX = 0
  114. 23120  ON M2 GOSUB 41000,41000,43000
  115. 23122  ON EX GOTO 23140
  116. 23130  GOTO 23010
  117. 23140  RETURN 
  118. 24000 :
  119. 24005  GOSUB 10000: GOSUB 52000
  120. 24010  CALL BOX,4,11,33,3
  121. 24020  PRINT "   Do you want to quit? (Y/N)"
  122. 24025 PR$ = "Press Y or N": GOSUB 50000
  123. 24030  GET K$
  124. 24040  IF K$ < >"Y"  AND K$ < >"N"  AND K$ < >"y"  AND K$ < >"n"  THEN P = 21:D = 12: GOSUB 60000:P = 25: GOSUB 60000: GOTO 24010
  125. 24050  IF K$ = "Y"  OR K$ = "y"  THEN  PRINT  CHR$(4)"bye"
  126. 24060  RETURN 
  127. 30000 :
  128. 30010  CALL OBOX,3,9,17,6: PRINT LINGO$":"
  129. 30020 OUT$ = LA$(BS +IX): GOSUB 51000
  130. 30021 :
  131. 30022 OUT$ = " " +PR$(BS +IX): PRINT : GOSUB 52200
  132. 30030  CALL OBOX,20,9,19,6: PRINT "Translation:"
  133. 30040 OUT$ = EN$(BS +IX): GOSUB 51000
  134. 30050  CALL OBOX,3,15,36,7: PRINT "Definition:"
  135. 30060 OUT$ = PH$(BS +IX): GOSUB 51000
  136. 30070 PR$ = "Press a key.": GOSUB 50000
  137. 30080  GET K$
  138. 30085  CALL CBOX: CALL CBOX: CALL CBOX
  139. 30090  RETURN 
  140. 41000  REM 
  141. 41020  FOR QL = 0 TO 19:MS$(QL) = "": NEXT :MS = 0: REM miss=0
  142. 41070  FOR QL = 0 TO 19
  143. 41071 EX = 0
  144. 41072 SB = QL: GOSUB 49000
  145. 41080  GOSUB 41500: REM question
  146. 41086  IF EX  THEN QL = 19
  147. 41090  NEXT QL
  148. 41091  IF EX  THEN 41100
  149. 41092  REM results!
  150. 41094  IF   NOT MS  THEN  CALL OBOX,12,12,16,8:OUT$ = "You got them all right!": GOSUB 51000: GOSUB 55000: PRINT " Press a key.": GET K$: GOTO 41100
  151. 41096  CALL OBOX,2,2,38,22
  152. 41097  ON MS <19 GOSUB 41200: FOR QL = 0 TO MS -1: PRINT  SPC( (18 - LEN(MS$(QL))/2))MS$(QL): NEXT : PRINT  CHR$(20): VTAB 1: HTAB 13: PRINT "Items you missed:": REM  Jay's on ms<19
  153. 41098 PR$ = "Press a key.": GOSUB 50000: GET K$: PRINT  CHR$(20) CHR$(12)
  154. 41100  CALL CBOX:EX = 0: RETURN 
  155. 41200  FOR QL = 1 TO (20 -MS)/2: PRINT : NEXT : RETURN 
  156. 41500  REM <CTRL-0x0a>eng/lat ques
  157. 41510  CALL BOX,2,2,38,22
  158. 41520  GOSUB 52000
  159. 41530  CALL BOX,3,7,36,8
  160. 41540  ON M2 GOSUB 41800,41810
  161. 41550  GOSUB 51000
  162. 41552  IF M2 = 2  THEN OUT$ = " " +PR$(QU(QL)): PRINT : GOSUB 52200
  163. 41560  CALL BOX,3,15,36,6
  164. 41570  PRINT "  1.": PRINT "  2.": PRINT "  3.": PRINT "  4.": POKE 32, PEEK(32) +4: HOME 
  165. 41580  FOR Q8 = 1 TO 4
  166. 41590  ON M2 GOSUB 41900,41910
  167. 41600  NEXT 
  168. 41610 AN$ = AN$(1):LA$ = ES$(1): REM KEEP CORR ANS
  169. 41620  GOSUB 48000: REM SHUFFLE ANS
  170. 41630  FOR Q8 = 1 TO 4: PRINT " "AN$(Q8): NEXT 
  171. 41635 PR$ = "Touch 1-4, or ESC to exit": GOSUB 50000
  172. 41640  GET K$
  173. 41641  IF K$ =  CHR$(27)  THEN EX = 1: GOSUB 53000: IF EX  THEN 41670
  174. 41645  IF K$ <"1"  OR K$ >"4"  THEN PR$ = "Touch 1-4, or ESC to exit": GOSUB 50000: GOTO 41640
  175. 41646 KY =  VAL(K$)
  176. 41650  IF AN$ = AN$(KY)  THEN  CALL OBOX,12,14,16,8:OUT$ = AN$ +" is correct!": GOSUB 51000: PRINT : PRINT " Press a key.":PR$ = "": GOSUB 50000:P = 5:D = 8: GOSUB 60000: GET K$: CALL CBOX: RETURN 
  177. 41652  IF AN$ < >AN$(KY)  THEN MS$(MS) = AN$:MS = MS +1: CALL OBOX,12,14,16,8:OUT$ = "The correct answer was: " +AN$: GOSUB 51000: PRINT : PRINT " Press a key.":PR$ = "": GOSUB 50000: GET K$: CALL CBOX
  178. 41660  IF LA$ < >""  THEN MS$(MS -1) = LA$
  179. 41670  RETURN 
  180. 41800  PRINT QL +1" of 20: Select the "LINGO$" for:":OUT$ = PH$(QU(QL)): RETURN 
  181. 41810  PRINT QL +1" of 20: Select the Mundane for:":OUT$ = LA$(QU(QL)): RETURN 
  182. 41900 AN$(Q8) = LA$(QU(SB +Q8 -1)):ES$(Q8) = "": RETURN 
  183. 41910 AN$(Q8) = EN$(QU(SB +Q8 -1)):ES$(Q8) = LA$(QU(SB +Q8 -1)): RETURN 
  184. 42000  RETURN 
  185. 43000  REM <CTRL-0x0a>exit<CTRL-0x0a>
  186. 43010 EX = 1: RETURN 
  187. 47999  REM <CTRL-0x0a>SHUFFLE AN$(1-4)
  188. 48000  FOR L1 = 1 TO 4
  189. 48010 T$ = AN$(L1):T1 =  RND(1) *4 +1:AN$(L1) = AN$(T1):AN$(T1) = T$
  190. 48020  NEXT 
  191. 48030  RETURN 
  192. 48999  REM <CTRL-0x0a>SHUFFLE<CTRL-0x0a>
  193. 49000  CALL OBOX,12,9,14,3: PRINT "   Working": FOR L1 = SB TO 48
  194. 49010 T = QU(L1):T1 =  RND(1) *(48 -SB) +SB:QU(L1) = QU(T1):QU(T1) = T
  195. 49020  NEXT 
  196. 49025  CALL CBOX
  197. 49030  RETURN 
  198. 49999  REM <CTRL-0x0a>prompt<CTRL-0x0a>
  199. 50000  PRINT  CHR$(20): VTAB 24: HTAB 1: PRINT  SPC( 40): HTAB 21 - LEN(PR$)/2: PRINT PR$: RETURN 
  200. 51000  REM <CTRL-0x0a>window print<CTRL-0x0a>
  201. 51020 X = 1
  202. 51030  PRINT " ";
  203. 51040  FOR Z = 1 TO  LEN(OUT$)
  204. 51050  IF  MID$ (OUT$,Z,1) < >" "  THEN 51080
  205. 51060 P$ =  MID$ (OUT$,X,Z -X +1): IF  PEEK(36) + LEN(P$) +1 > PEEK(33)  THEN  PRINT : PRINT " ";: IF J >0  THEN  PRINT "   ";
  206. 51070  PRINT P$;:X = Z +1
  207. 51080  NEXT Z
  208. 51090  IF  PEEK(36) +Z -X +1 > PEEK(33)  THEN  PRINT : PRINT " ";: IF J >0  THEN  PRINT "   ";
  209. 51100  PRINT  MID$ (OUT$,X, LEN(OUT$) -X +1);: IF  PEEK(37) +1 < > PEEK(35)  THEN  PRINT 
  210. 51110  RETURN 
  211. 52000  CALL BOX,3,3,36,3: PRINT " Jim Weiler's Q & D "LINGO$" Tutor": RETURN 
  212. 52200  FOR Q1 = 1 TO  LEN(OUT$):A$ =  MID$ (OUT$,Q1,1): IF A$ < >"{"  AND A$ < >"|"  AND A$ < >"~"  AND A$ < >"#"  AND A$ < >"$"  AND A$ < >"%"  AND A$ < >"*"  THEN 52300
  213. 52210  PRINT  CHR$(8);: SPEED= 252: NORMAL 
  214. 52300  PRINT A$;: SPEED= 255: INVERSE : NEXT : RETURN 
  215. 53000  REM <CTRL-0x0a>exit vfy<CTRL-0x0a>
  216. 53010  CALL OBOX,12,12,16,8
  217. 53020 OUT$ = "Do you really want to exit the quiz? (Y/N)": GOSUB 51000
  218. 53025 PR$ = "Press Y or N": GOSUB 50000
  219. 53030  GET K$
  220. 53040  IF K$ < >"Y"  AND K$ < >"y"  AND K$ < >"N"  AND K$ < >"n"  THEN  CALL BOX,12,12,16,8: GOTO 53020
  221. 53050  IF K$ = "Y"  OR K$ = "y"  THEN 53070
  222. 53060 EX = 0
  223. 53070  CALL CBOX: RETURN 
  224. 55000  REM <CTRL-0x0a>win<CTRL-0x0a>
  225. 55010 D = 5
  226. 55015 P$ = "213191171161144128114108108"
  227. 55018  FOR ZY = 1 TO 3: FOR ZZ = 1 TO  LEN(P$)  STEP 3:P =  VAL( MID$ (P$,ZZ,3)): GOSUB 60000: NEXT : NEXT 
  228. 55030  RETURN 
  229. 59000  REM <CTRL-0x0a>input<CTRL-0x0a>
  230. 59020  CALL  PEEK(121) + PEEK(122) *256 +32,IN$: REM   GET  COS  LEN SIN l EXP DEL  DEL  INPUT  DIM  , USR COLOR= <CTRL-0x01> GR  ROT=  COLOR= <CTRL-0x02> VTAB  PLOT   RIGHT$ LEN  SHLOAD  SQR`  SHLOAD  SQR``
  231. 59030  RETURN 
  232. 60000  CALL  PEEK(121) + PEEK(122) *256 +32,P,D: REM   GET  COS g EXP R CHR$ ONERR P PLOT  TAN GET   GET  COS g EXP R CHR$ ONERR P PLOT  ATN GET  PLOT 0 TAB(  GR  MID$  MID$  = <CTRL-0x05>  OR  ATN GET <UNKNOWN TOKEN><CTRL-0x13> * = <CTRL-0x05> RESTORE  TAN GET  = <UNKNOWN TOKEN> RIGHT$<CTRL-0x01> =  MID$  IF  TAN GET  =  PEEK````
  233. 60010  RETURN : REM hummy
  234. 61000  CALL  PEEK(121) + PEEK(122) *256 +28: REM 8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF ^ TAB(  IF ) TAB( <CTRL-0x09>  PLOT ) TAB( `
  235. 61010  RETURN : REM mono
  236. 62000  CALL  PEEK(121) + PEEK(122) *256 +28: REM 8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF _ TAB(  IF ) TAB( ) SIN PLOT ) TAB( `
  237. 62010  RETURN : REM color
  238. 62096  PRINT  CHR$(20) CHR$(12)
  239. 62900  REM  error
  240. 62902  PRINT  CHR$(4)"close"
  241. 62905  CALL OBOX,5,10,30,3: PRINT "Fatal error. Press a key.": GET K$: CALL CBOX
  242. 62910  RUN 40
  243. 63000  REM (c)
  244. 65535  PRINT 
  245. 65535  PRINT "        ESOTERICA      "
  246. 65535  PRINT "      by Jim Weiler"
  247. 65535  PRINT 
  248. 65535  PRINT "  (C) 1992 Softdisk,Inc."
  249. 65535  PRINT "   All rights reserved"
  250. 65535  PRINT "      Published on"
  251. 65535  PRINT "      Softdisk 133"
  252. 65535  PRINT "     Subscriptions:"
  253. 65535  PRINT "     1-800-831-2694"
  254. 65535  PRINT "  Changing this notice"
  255. 65535  PRINT "       is illegal"
  256. 65535  VTAB 22: HTAB 12: PRINT "Press a key."
  257. 65535  RETURN